//页面加载完后响应onReady事件
$(function(){	
	//移除【保存】的onclick事件
	$("#saveButton").unbind("click");
	//【保存】绑定新增报表的js
	$("#saveButton").bind("click", save);
	
	//reportname绑定change事件
	$('#reportname').bind('change',function(){
		if ($(this).validatebox("isValid"))
		{
			$.ajax({
				url:ctx+'/urgentrptmgr/speedReportAction!checkNameIsValid.action',
				data:{reportName:$('#reportname').val()},
				dataType:'json',
				success:function(data){
					if(data=='1'){
						window.top.$.messager.alert('提示', '该报表名称已经存在，请检查！');
						$('#reportname').val('').focus();
					}
				}
			});
		}
	});
	
	//初始化周期类型
	$('#periodtype').combobox({
		url:ctx+'/basemgr/kqiManagerAction!getDic.action?dictType=periodType&tableName=TD_KQI_DEFINE&excludeValues=1,4',  
		valueField:'codeValue',
		textField:'codeName',
 	 	editable:false,
 		required:true,
 		onLoadSuccess:function(){
			//默认不选中任意一项
 			$('#periodtype').combobox('unselect',0);
		},
		onSelect:function(){
			//当周期类型发生变化时，判断是否已经配置过规则,
			//如果已配置过规则并且当前的周期类型不等于周期类型的隐藏标识的值时给出提示
			if ($("#periodTypeFlag").val() != ''
				&& $(this).combobox('getValue') != $("#periodTypeFlag").val())
			{
				//从页面获取配置规则的条数
				if($("#lrzj_line li").size() > 0){
					window.top.$.messager.alert('提示', '该周期类型已配置了检查规则,如需修改请先删除所有的配置规则!');
					$(this).combobox('setValue', $("#periodTypeFlag").val());
					return false;
	 	 	    }
			}
		}
	});
	$('#requiresrc').combobox({
		url:ctx+'/basemgr/kqiManagerAction!getDic.action?dictType=requireSrc&tableName=TD_SPEED_REPORT_DEFINE&&excludeValues=4',  
		valueField:'codeValue',
		textField:'codeName',
 	 	editable:false,
 	 	required:true,
 	 	onLoadSuccess:function(){
			//不让第一条为默认选择项
			$('#requiresrc').combobox('unselect',0);
		}
	});	
	
	//加载字典表中数据层次的数据
	$('#check_point_datalevel').combobox({
		url:ctx+"/basemgr/kqiManagerAction!getDic.action?dictType=dataLevel",    
		valueField:'codeValue',
		textField:'codeName',
 	 	editable:false,
 	 	required:true,
 	 	onLoadSuccess:function(){
			//不让第一条为默认选择项
			$('#check_point_datalevel').combobox('unselect',0);
		},
		onSelect:function(){
			loadCheckRule($(this).combobox('getValue'), $("#periodtype").combobox('getValue'));
		}
	});
	
});	

/**
 * 加载检查点规则数据
 * @param dataLevel 数据提取层
 * @param periodType 周期类型
 */
function loadCheckRule(dataLevel, periodType)
{
	$("#check_point_td").empty().html('<input type="text" id="check_point_rule" name="rule" readonly="readonly" data-options="required:true,missingMessage:\'请选择检查规则\'" style="width:180px;"/>');
	$('#check_point_rule').combogrid({  
        panelWidth:450,  
        idField:'ruleId', //ID字段  
        textField:'ruleName', //显示的字段  
        url:ctx+"/urgentrptmgr/speedReportAction!getCheckPointRule.action",  
        queryParams:{queryDataLevel:dataLevel, queryPeriodType:periodType},
        editable:false,
        fitColumns: true,  
        striped: true,  
        pagination : true,//是否分页  
        rownumbers:true,//序号  
        collapsible:false,//是否可折叠的  
        fit: true,//自动大小  
        pageSize: 10,//每页显示的记录条数，默认为10  
        pageList:[10,20,30],//可以设置每页记录条数的列表  
        method:'post',  
        columns:[[{field:'ruleId',hidden:true},
				  {field:'ruleName',title:'规则名称',width:150,align:'center'},				  
				  {field:'ruleType',title:'规则类型',width:50,align:'center',hidden:true},
				  {field:'ruleAlgorithmName',title:'规则算法',width:140,align:'center'},
				  {field:'ruleVersionNum',title:'版本号',width:50,align:'center',hidden:true},
				  {field:'warnLevelName',title:'告警级别',width:150,align:'center'},
				  {field:'thresholdMax',title:'阀值上限',width:80,align:'center'},
				  {field:'thresholdMin',title:'阀值下限',width:80,align:'center'}				 				 
				]],
		toolbar:'#tb'
    }); 
}

/**
 * 保存急报快报信息
 */
function save()
{		
	window.top.$('#main_form').form('submit',{
		url:ctx+'/urgentrptmgr/speedReportAction!addSpeedReport.action',	
		onSubmit:function(){
			if ($(this).form("validate"))
			{
				$("#saveButton").attr('disabled', true);
			}
			else
			{
				return false;
			}
		},
		success:function(result){
			$("#saveButton").attr('disabled', false);
			try{
				showSummary();
				//显示提示信息
				window.top.$.messager.show({title:'提示',msg:'新增急报基本信息成功！'});					
				$("#addDiv").slideUp("slow"); //关闭添加急报快报文本框
				$("#speedreportInfoDiv").slideDown("slow"); //展开急报快报信息
				//周期类型的隐藏标识
				$("#periodTypeFlag").val($("#periodtype").combobox('getValue'));
				//替换配置规则图片
				$("#pzgz_img_div").children().attr("src",ctx+"/images/speedreport/pzgz_nu.png");
				$("#pzgz_img_div").children().attr("title","点击配置规则");
				
				//给配置规则图片绑定事件
				$("#pzgz_btn").unbind("click");
				$("#pzgz_btn").click(function() {spreadAddGZ();});
				$("#tipInfo_div").css("display", "none");
				spreadSpeedInfo();
				getAllCheckPointConfig();//获取所有的检查规则配置信息
				//刷新主列表
				window.top.$('#table_datagrid').datagrid('reload');																
			}catch(e){
				window.top.$.messager.alert('提示', e);
			}
		}
	});
}

function getAllCheckPointConfig(){
	$.ajax({
		url:ctx+'/urgentrptmgr/speedReportAction!getRuleByReportId.action',
		data:{reportId:$('#reportid').val(),reportType:$("#reporttype").val()},
		dataType:'json',
		success:function(data){						
			createGZInfo(data);//构造时间轴				
		}
	});
}

/**
 * 显示急报快报概要信息
 */
function showSummary(){
	$('#tempReportname').html($('#reportname').val());
	$('#tempReporttype').html($('#reportTypeName').val());
	$('#tempPeriodtype').html($('#periodtype').combobox('getText'));
	$('#tempRequiresrc').html($('#requiresrc').combobox('getText'));
}

/**
 * 点击【修改】触发事件
 */
function spreadSpeedModInfo()
{
	spreadSpeedReportInfo();
	
	//输入框可用
	$("#reportname").attr("readonly", false);
	$("#requireresourceid").attr("readonly", false);
	$("#requireresourcename").attr("readonly", false);
	$("#requiredesc").attr("readonly", false);
	$("#requiresrc").combobox("enable");
	$("#periodtype").combobox("enable");
	
	$("#save_btn_div").css("display", "block");
	$("#spread_btn_div").css("margin-right", "5px");
	//移除【保存】的onclick事件
	$("#saveButton").unbind("click");
	//【保存】绑定修改报表信息的js
	$("#saveButton").bind("click", updateReport);
}

/**
 * 修改急报快报信息
 */
function updateReport()
{		
	window.top.$('#main_form').form('submit',{
		url:ctx+'/urgentrptmgr/speedReportAction!editSpeedReport.action',
		onSubmit:function(){
			if ($(this).form("validate"))
			{
				$("#saveButton").attr('disabled', true);
			}
			else
			{
				return false;
			}
		},
		success:function(result){
			$("#saveButton").attr('disabled', false);
			try{
				showSummary();
				//显示提示信息
				window.top.$.messager.show({title:'提示',msg:'修改急报基本信息成功！'});	
				//周期类型的隐藏标识
				$("#periodTypeFlag").val($("#periodtype").combobox('getValue'));
				spreadSpeedInfo();
				getAllCheckPointConfig();
				//刷新主列表
				window.top.$('#table_datagrid').datagrid('reload');																
			}catch(e){
				window.top.$.messager.alert('提示', e);
			}
		}
	});
}

//收缩按钮事件
function spreadSpeedInfo()
{
	var offset = $("#mainDiv").offset();
	$("#addDiv").slideUp("slow"); //关闭添加急报快报文本框
	$("#speedreportInfoDiv").slideDown("slow"); //展开急报快报信息
	$("#save_btn_div").css("display", "none");
	$("#spread_btn_div").css("display", "none");
	$("#showGZDiv").css("height", "480px");
	$("#pzgz_img_div").css({'top':offset.top+60, "left":offset.left});
	//隐藏配置规则div
	if($("#addPZDZ_div").css("display")=="block")
	{
		$("#addPZDZ_div").animate({left: "-20px", top:"-20px"},800,function(){$("#addPZDZ_div").css("display", "none");});
	}
}

//展开按钮事件
function spreadSpeedReportInfo()
{
	//输入框不可用
	$("#reportname").attr("readonly", true);
	$("#requireresourceid").attr("readonly", true);
	$("#requireresourcename").attr("readonly", true);
	$("#requiredesc").attr("readonly", true);
	$("#requiresrc").combobox("disable");
	$("#periodtype").combobox("disable");
	
	var offset = $("#mainDiv").offset();
	$("#addDiv").slideDown("slow"); //关闭添加急报快报文本框
	$("#speedreportInfoDiv").slideUp("slow"); 
	$("#save_btn_div").css("display", "none");
	$("#spread_btn_div").css("display", "block");
	$("#pzgz_img_div").css({'top':offset.top+240, "left":offset.left});
	$("#showGZDiv").css("height", "303px");
	$("#spread_btn_div").css("margin-right", "75px");
	//隐藏配置规则div
	if($("#addPZDZ_div").css("display")=="block")
	{
		$("#addPZDZ_div").animate({left: "-20px", top:"-20px"},800,function(){$("#addPZDZ_div").css("display", "none");});
	}
}

/**
 * 点击【配置规则】触发js
 */
function spreadAddGZ()
{
	if($("#addPZDZ_div").css("display")=="block")
	{
		$("#addPZDZ_div").animate({left: "-20px", top:"-20px"},800,function(){$("#addPZDZ_div").css("display", "none");});
	}
	else
	{
		var p = $("#pzgz_img_div").position();
		$("#addPZDZ_div").animate({left: p.left, top:p.top-10},800);
		$("#addPZDZ_div").css("display", "block");
	}	
	resetQuery();
	$('#check_point_datalevel').combobox('clear');
	$("#check_point_td").empty().html('<input type="text" id="check_point_rule" name="rule" readonly="readonly" data-options="required:true,missingMessage:\'请选择检查规则\'" style="width:180px;"/>');
}

//保存检查规则点配置信息
function saveCheckPoint()
{
	var reportId=$('#reportid').val();//急报快报主键
	var dataLevel = $("#check_point_datalevel").combobox("getValue");
	if(typeof dataLevel == undefined || dataLevel == null
			|| dataLevel == '')
	{
		window.top.$.messager.alert('提示','数据提取层不能为空，请选择');
		return;
	}
	
	var ruleId=$('#check_point_rule').combogrid('getValue');//获得检查检查规则ID
	if(typeof ruleId == undefined || ruleId == null
			|| ruleId == '')
	{
		window.top.$.messager.alert('提示','检查规则不能为空，请选择');
		return;
	}	
	var versionNum='';		
    var g=$('#check_point_rule').combogrid('grid');
    var r=g.datagrid('getSelected');	// get the selected row
    versionNum=r.ruleVersionNum;   
    
    $.ajax({
		url:ctx+'/urgentrptmgr/speedReportAction!isCheckPointConfig.action',//校验在该 时间点是否已配置检查规则
		data:{reportId:reportId,dataLevel:dataLevel,ruleId:ruleId,reportType:$("#reporttype").val()},
		dataType:'json',
		success:function(data){
			if(data.returnFlag==true){				
				$.ajax({
					url:ctx+'/urgentrptmgr/speedReportAction!saveCheckPointConfig.action',
					data:{reportId:reportId,dataLevel:dataLevel,ruleId:ruleId,versionNum:versionNum
						,reportType:$("#reporttype").val()},
					dataType:'json',
					success:function(data){
						$.messager.show({title:'提示',msg:'检查点配置成功'});
						spreadAddGZ();	//收起配置窗口			
						createGZInfo(data);//构造时间轴		
					}
				});												
			}else if(data.returnFlag==false){
				$.messager.alert('提示',data.returnMsg);
				resetQuery();
				$('#check_point_datalevel').combobox('clear');
				$("#check_point_td").empty().html('<input type="text" id="check_point_rule" name="rule" readonly="readonly" data-options="required:true,missingMessage:\'请选择检查规则\'" style="width:150px;"/>');
			}			
		}
	});           	
}

//st:对象  type:class名称  change:改变小图标的名称
function cbart (st,type,change) 
{ 
	document.getElementById(st).className = type;
	if(change!=""&&change!=null&&change!=undefined)
	{
		$("#"+st).children().children().attr("src",ctx+"/images/speedreport/"+change);
	}
} 
function sbart (st,type,change)
{ 
	document.getElementById(st).className = type;
	if(change!=""&&change!=null&&change!=undefined)
	{
		$("#"+st).children().children().attr("src",ctx+"/images/speedreport/"+change);
	}
}


//删除检查点规则配置信息并刷新时间轴
function deleCheckPointConfig(reportId,ruleId)
{
	window.top.$.messager.confirm('提示','是否确定删除该检查点规则？',function(b){
		if(b){
			$.ajax({
				url:ctx+'/urgentrptmgr/speedReportAction!deleCheckPointConfig.action',
				data:{reportId:reportId,ruleId:ruleId,reportType:$("#reporttype").val()},
				dataType:'json',
				success:function(data){						
					createGZInfo(data);//构造时间轴				
				}
			});
		}
	});
}
//规则信息
function createGZInfo(data)
{
	var innerHTML="";
	//时间轴
	var dataHTML = "";
	//展示数据
	var lrzjHTML = "";
	if (data != null && data != "")
	{
		for (var i=0;i<data.length;i++)
		{
			dataHTML += '<li><a href="#nogo"></a></li>';
			if(i%2==0)
			{
				lrzjHTML+='<li>';
				lrzjHTML+='	<table style="background: url('+ctx+'/js/timeline/images/up_content.png);width:300px;height:168px;" border="0">';
				lrzjHTML+='		<tr style="height: 45px;">';
				lrzjHTML+='			<td align="left"><div class="showGZ-text1" style="color: #4f8fc7;font-size: 14px;" title="'+data[i].chekcRuleName+'">'+data[i].chekcRuleName+'</div></td>';
				lrzjHTML+='			<td align="right"><span class="pz_del_span"><img src="'+ctx+'/images/speedreport/gz_del_un.png" title="删 除" alt="删 除" onclick="deleCheckPointConfig(\''+data[i].reportId+'\', \''+data[i].ruleId+'\')">&nbsp;</span></td>';
				lrzjHTML+='		</tr>';
				lrzjHTML+='	<tr style="height: 28px;">';
				lrzjHTML+='<td align="left" style="padding-left: 5px;">规则算法：'+data[i].ruleAlgorithmName+'</td>';
				lrzjHTML+='<td align="left">告警级别：';
				lrzjHTML +='<em class="'+warnLevelColor(data[i].warnLevel)+'" >'+data[i].warnLevelName+'</em>';
				lrzjHTML +='</td>';
				lrzjHTML+='	</tr>';
				lrzjHTML+='	<tr style="height: 28px;">';
				lrzjHTML+='	<td colspan="2" align="left" style="padding-left: 5px;">阀值上限：'+data[i].thresholdMax+'</td>';
				lrzjHTML+='	</tr>';
				lrzjHTML +='<tr style="height: 28px;">';
				lrzjHTML +='<td colspan="2" align="left" style="padding-left: 5px;">阀值下限：'+data[i].thresholdMin;
				lrzjHTML +='</td>';
				lrzjHTML +='</tr>';
				lrzjHTML +='<tr>';
				lrzjHTML +='<td colspan="2"></td>';
				lrzjHTML +='</tr>';
				lrzjHTML+='	</table>';
				lrzjHTML+='	<div style="position:relative;top:38px;left:88px; float:left">';
				lrzjHTML+='	<table style="height:41px" cellpadding="0" cellspacing="0">';
				lrzjHTML+='		<tr>';
				lrzjHTML+='			<td  style="background: url('+ctx+'/js/timeline/images/up_left.png);width:10px"></td>';
				lrzjHTML+='			<td  style="background: url('+ctx+'/js/timeline/images/up_center.png); vertical-align:middle">';
				lrzjHTML+=data[i].dataLevelName+'</td>';
				lrzjHTML+='			<td  style="background: url('+ctx+'/js/timeline/images/up_right.png);width:38px"></td>';
				lrzjHTML+='	</tr>';
				lrzjHTML+='	</table>';
				lrzjHTML+='</div>';
				lrzjHTML+='</li>';
			}
			else
			{
				lrzjHTML+='<li style="position:relative;z-index:999999;top:-7px;">';
				lrzjHTML+='	<table style="background: url('+ctx+'/js/timeline/images/down_content.png);width:300px;height:168px;" border="0">';
				lrzjHTML +='<tr>';
				lrzjHTML +='<td colspan="2"></td>';
				lrzjHTML +='</tr>';
				lrzjHTML+='		<tr style="height: 45px;">';
				lrzjHTML+='			<td align="left"><div class="showGZ-text1" style="color: #4f8fc7;font-size: 14px;" title="'+data[i].chekcRuleName+'">'+data[i].chekcRuleName+'</div></td>';
				lrzjHTML+='			<td align="right"><span class="pz_del_span"><img src="'+ctx+'/images/speedreport/gz_del_un.png" title="删 除" alt="删 除" onclick="deleCheckPointConfig(\''+data[i].reportId+'\', \''+data[i].ruleId+'\')">&nbsp;</span></td>';
				lrzjHTML+='		</tr>';
				lrzjHTML+='	<tr style="height: 28px;">';
				lrzjHTML+='<td align="left" style="padding-left: 5px;">规则算法：'+data[i].ruleAlgorithmName+'</td>';
				lrzjHTML+='<td align="left">告警级别：';
				lrzjHTML +='<em class="'+warnLevelColor(data[i].warnLevel)+'" >'+data[i].warnLevelName+'</em>';
				lrzjHTML +='</td>';
				lrzjHTML+='	</tr>';
				lrzjHTML+='	<tr style="height: 28px;">';
				lrzjHTML+='	<td colspan="2" align="left" style="padding-left: 5px;">阀值上限：'+data[i].thresholdMax+'</td>';
				lrzjHTML+='	</tr>';
				lrzjHTML +='<tr style="height: 28px;">';
				lrzjHTML +='<td colspan="2" align="left" style="padding-left: 5px;">阀值下限：'+data[i].thresholdMin;
				lrzjHTML +='</td>';
				lrzjHTML +='</tr>';
				lrzjHTML+='	</table>';
				lrzjHTML+='	<div style="position:relative;top:-243px;left:102px; float:left">';
				lrzjHTML+='	<table style="height:41px" cellpadding="0" cellspacing="0">';
				lrzjHTML+='		<tr>';
				lrzjHTML+='			<td  style="background: url('+ctx+'/js/timeline/images/down_left.png);width:10px"></td>';
				lrzjHTML+='			<td  style="background: url('+ctx+'/js/timeline/images/down_center.png);vertical-align:middle">';
				lrzjHTML+=data[i].dataLevelName+'</td>';
				lrzjHTML+='			<td  style="background: url('+ctx+'/js/timeline/images/down_right.png);width:38px"></td>';
				lrzjHTML+='		</tr>';
				lrzjHTML+='	</table>';
				lrzjHTML+='</div>';
				lrzjHTML+='</li>';
			}
		}
		
		innerHTML+='<div id="lrzj_x">';
		innerHTML+='<ul id="dates">';
		innerHTML+=dataHTML;
		innerHTML+='</ul>';
		innerHTML+='<ul id="lrzj_line">';
		innerHTML+=lrzjHTML;
		innerHTML+='</ul>';
		innerHTML+='<a href="#" id="next">+</a>';
		innerHTML+='<a href="#" id="prev">-</a>';
		innerHTML+='</div>';
		$("#showGZDiv").html(innerHTML);
		$().timelinr();
	}
	else
	{
		$("#showGZDiv").html(innerHTML);
	}
	$("#showGZDiv").css("display", "block");
	
}


//根据查询条件查询过滤规则
function queryRule()
{
	var ruleName=$('#query_ruleName').val();	
	var dataLevel = $("#check_point_datalevel").combobox("getValue");
	var queryPeriodType = $("#periodtype").combobox('getValue');
	var query={ruleName:ruleName, queryDataLevel:dataLevel, queryPeriodType:queryPeriodType}; //把查询条件拼接成JSON
	var grid=$("#check_point_rule").combogrid('grid');
	$(grid).datagrid('options').queryParams=query; //把查询条件赋值给datagrid内部变量
	$(grid).datagrid('load');
}
//重置查询条件
function resetQuery(){
	$('#query_ruleName').val('');
}

/**
 * 根据告警级别，告警内容显示相应的颜色
 * @param warnLevel
 */
function warnLevelColor(warnLevel)
{
	var className = "";
	
	//严重告警
	if (warnLevel == 3)
	{
		className = "warn_serious";
	}
	
	//重要告警
	else if (warnLevel == 2)
	{
		className = "warn_important";
	}
	
	//一般告警
	else if (warnLevel == 1)
	{
		className = "warn_common";
	}
	
	//正常
	else
	{
		className = "warn_normal";
	}
	
	return className;
}